package br.com.gid.teste;

import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;

import br.com.gid.entidade.Usuario;
import br.com.gid.util.SenhaMD5;

public class TesteJPA {
	
	EntityManager em = em();

	public static void main(String[] args) {
		Usuario usuario = new Usuario();
		TesteJPA jpa = new TesteJPA();
		usuario = jpa.buscaPorId(1) ;
		System.out.println(usuario.getLogin());
	}
	
	
	public void criaUsuario(String login, String senha){
		
		Usuario usuario = new Usuario();
		SenhaMD5 md5 = new SenhaMD5();
		usuario.setLogin(login);
		usuario.setSenha(md5.md5(senha));
		
		em.getTransaction().begin();
		em.persist(usuario);
		em.getTransaction().commit();
		em.close();
	}
	
	public void editaUsuario(Usuario usuario){
		SenhaMD5 md5 = new SenhaMD5();
		em.getTransaction().begin();
		
		usuario = em().find(Usuario.class, usuario.getId());
		
		usuario.setLogin(usuario.getLogin());
		usuario.setSenha(md5.md5(usuario.getSenha()));
		em.getTransaction().commit();
		em.close();
	}
	
	public Usuario buscaPorId(Integer id){
		em.getTransaction().begin();
		Usuario usuario = em.find(Usuario.class, id);
		em.close();		
		return usuario;
	}
	
	public void excluiUsuario(Integer id){
		em.getTransaction().begin();
		
		Usuario usuario = em.find(Usuario.class, id);
		
		em.remove(usuario);
		
		em.getTransaction().commit();
		em.close();
	}
	
	private static EntityManager em(){
		EntityManagerFactory entityManagerFactory = Persistence.createEntityManagerFactory("gid");
		EntityManager entityManager = entityManagerFactory.createEntityManager();
		return entityManager;
	}

}
